﻿using Styx;
using Styx.Common;
using Styx.Helpers;
using System.ComponentModel;
using System.IO;

namespace UseItems
{
    public partial class UseItemSettings : Settings
    {
        private static UseItemSettings _instance;

        public static UseItemSettings Instance
        {
            get { return _instance ?? (_instance = new UseItemSettings()); }
        }

        public UseItemSettings()
            : base(
                Path.Combine(Utilities.AssemblyDirectory,
                             string.Format("Settings\\{0}\\{1}\\UseItemSettings.xml", StyxWoW.Me.RealmName,
                                           StyxWoW.Me.Name)),
                Path.Combine(Utilities.AssemblyDirectory,
                             string.Format("Settings\\UseItemSettings_{0}.xml", StyxWoW.Me.Name)))
        {
        }

        #region Category: Buffing

        [Setting]
        [Styx.Helpers.DefaultValue(true)]
        [Category("Buffing")]
        [DisplayName(@"Windfeather Plume")]
        [Description("Toggles if UseItem should use Windfeather Plume.")]
        public bool WindfeatherPlume { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(true)]
        [Category("Buffing")]
        [DisplayName(@"Book of the Ages")]
        [Description("Toggles if UseItem should use Book of the Ages.")]
        public bool BookoftheAges { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(true)]
        [Category("Buffing")]
        [DisplayName(@"Dew of Eternal Morning")]
        [Description("Toggles if UseItem should use Dew of Eternal Morning.")]
        public bool DewofEternalMorning { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(true)]
        [Category("Buffing")]
        [DisplayName(@"Singing Crystal")]
        [Description("Toggles if UseItem should use Singing Crystal.")]
        public bool SingingCrystal { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(true)]
        [Category("Buffing")]
        [DisplayName(@"Crystal of Insanity")]
        [Description("Toggles if UseItem should use Crystal of Insanity.")]
        public bool CrystalofInsanity { get; set; }

        #endregion

        #region Category: Profession

        [Setting]
        [Styx.Helpers.DefaultValue(false)]
        [Category("Profession")]
        [DisplayName(@"Strange Bloated Stomach")]
        [Description("Toggles if UseItem should use Strange Bloated Stomach.")]
        public bool StrangeBloatedStomach { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(false)]
        [Category("Profession")]
        [DisplayName(@"Plump Intestines")]
        [Description("Toggles if UseItem should use Plump Intestines.")]
        public bool PlumpIntestines { get; set; }

        [Setting]
        [Styx.Helpers.DefaultValue(false)]
        [Category("Profession")]
        [DisplayName(@"Sealed Crate")]
        [Description("Toggles if UseItem should use Sealed Crate.")]
        public bool SealedCrate { get; set; }

        #endregion
    }

    public partial class UseItemSettings
    {
        // ReSharper disable InconsistentNaming
        public const string HEALING_POTION = "Healing Potion";
        public const string HEALTH_STONE = "Healthstone";
        public const string LIFE_SPIRIT = "Life Spirit";

        public const string RESTORE_MANA = "Restore Mana";
        public const string MANA_POTIONS = "Mana Potion";
        public const string MANA_SAPPHIRE = "Mana Sapphire";
        public const string WATER_SPIRIT = "Water Spirit";

        public const string WINDFEATHER_PLUME = "Windfeather";
        public const string BOOK_OF_THE_AGES = "Book of the Ages";
        public const string DEW_OF_ETERNAL_MORNING = "Dew of Eternal Morning";
        public const string SINGING_CRYSTAL = "Singing Crystal";
        public const string CRYSTAL_OF_INSANITY = "Visions of Insanity";

        public const string STRANGE_BLOATED_STOMACH = "Strange Bloated Stomach";
        public const string PLUMP_INTESTINES = "Plump Intestines";
        public const string SEALED_CRATE = "Sealed Crate";

        public const string TIMELESSTILE_ZONE = "永恒岛";
        // ReSharper restore InconsistentNaming
    }
}
